Skip to content

use multi-harness cloud agent icons + status#9263

Merged
harryalbert merged 2 commits intomasterfrom
harry/remote-1458-add-claude-specific-icons-for-cloud-mode-in-vertical-tabs
May 1, 2026
Merged

use multi-harness cloud agent icons + status#9263
harryalbert merged 2 commits intomasterfrom
harry/remote-1458-add-claude-specific-icons-for-cloud-mode-in-vertical-tabs

Conversation

@harryalbert
Copy link
Copy Markdown
Contributor

@harryalbert harryalbert commented Apr 28, 2026

Description

Given the fact that we're planning on accommodating multiple variants of cloud agents, we need to change the agent icons in the conversation list, notifications, pane header, and vertical tabs to support different harnesses. Peter drew up some mocks for this, and we'll use the new icon + status variants across all of these surfaces.

Testing

demo: https://www.loom.com/share/066e5842bf0541fa808925100cc6529e

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

@cla-bot cla-bot Bot added the cla-signed label Apr 28, 2026
Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@harryalbert harryalbert changed the title add cloud agent icons use multi-harness cloud agent icons Apr 28, 2026
@harryalbert harryalbert changed the title use multi-harness cloud agent icons use multi-harness cloud agent icons + status Apr 28, 2026
@harryalbert harryalbert marked this pull request as ready for review April 28, 2026 17:29
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented Apr 28, 2026

@harryalbert

I'm starting a first review of this pull request.

I completed the review and posted feedback on this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

You can view the conversation on Warp.

I completed the review and posted feedback on this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

This PR centralizes agent icon derivation and rendering across vertical tabs, pane headers, conversation-list rows, and notifications, adding cloud-lobe/status handling for multiple harnesses plus tests and specs for REMOTE-1458.

Concerns

  • The new harness-to-CLI mapping is not gated by FeatureFlag::AgentHarness, so existing or persisted non-Oz harness data can still display Claude/Gemini/OpenCode icons when the feature is disabled, contrary to the PR's flag-off validation.
  • Neutral/non-agent icons now reuse the agent-specific proportional renderer, shrinking plain terminal/code/file icons in vertical tabs even though non-agent surfaces are supposed to remain visually unchanged.

Verdict

Found: 0 critical, 2 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread app/src/ui_components/agent_icon.rs
Comment on lines +134 to +142
IconWithStatusVariant::Neutral { icon, icon_color } => render_circle(
icon.to_warpui_icon(icon_color).finish(),
internal_colors::fg_overlay_2(theme),
total_size,
),
IconWithStatusVariant::NeutralElement { icon_element } => render_circle(
icon_element,
internal_colors::fg_overlay_2(theme),
total_size,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [IMPORTANT] Neutral variants now use the agent-specific sizing ratios, which shrinks plain terminal/code/file tab icons from the previous full-size neutral circle/glyph to roughly 0.76 * total_size / 0.43 * total_size. Preserve the old neutral sizing or apply these ratios only to agent variants so non-agent surfaces remain visually unchanged.

@harryalbert harryalbert requested review from zachbai and removed request for zachbai April 29, 2026 23:06
@harryalbert harryalbert force-pushed the harry/remote-1458-add-claude-specific-icons-for-cloud-mode-in-vertical-tabs branch from ad8dd0f to aacac62 Compare April 30, 2026 19:31
oz-for-oss[bot]
oz-for-oss Bot previously requested changes Apr 30, 2026
Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

This PR centralizes agent icon derivation and rendering across vertical tabs, pane headers, the conversation list, and notifications, while adding harness/name helpers and cross-surface tests.

Concerns

  • CLIAgent::from_harness omits Harness::Codex, so the new match is non-exhaustive and the app will not compile.
  • Unknown/future harnesses are filtered out and then fall through to the Oz ambient branch, which mislabels non-Oz harnesses as Oz despite the new harness parser documenting Unknown as non-Oz.
  • The new proportional circle helper returns only the 76% inner circle for no-overlay variants, so neutral/statusless icons no longer occupy the requested vertical-tab/list/header footprint.
  • Supplemental security pass found no additional security-specific issues.

Verdict

Found: 1 critical, 2 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread app/src/terminal/cli_agent.rs
Comment thread app/src/ui_components/agent_icon.rs
/// Builds the brand-circle container around `icon_element`. The circle's diameter is
/// `circle_size(total)` and the icon glyph is `icon_size(total)`, with the rest going
/// to symmetric padding around the glyph.
fn render_circle(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [IMPORTANT] render_circle returns only circle_size(total_size) (76% of the requested size), and no-overlay callers return it directly, so neutral/statusless icons shrink instead of occupying the requested 24/32px footprint.

@harryalbert harryalbert dismissed oz-for-oss[bot]’s stale review April 30, 2026 19:41

oz for oss shouldn't be requesting changes

Comment thread app/src/ai/ambient_agents/task.rs Outdated
let name = String::deserialize(deserializer)?;
Ok(harness_from_name(&name))
let harness = Harness::from_config_name(&name);
if matches!(harness, Harness::Unknown) && name != Harness::Unknown.config_name() {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dont understand this name != Harness::Unknown.config_name()?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from_config_name returns Harness::Unknown both when the input is the string "unknown" (which is the serialized version of Harness::Unknown) and when the input is some name we don't recognize. The name != Harness::Unknown.config_name() should distinguish these two cases (because we probably don't want to log a warning for the first case)

Copy link
Copy Markdown
Contributor Author

@harryalbert harryalbert May 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but those two variants definitely aren't clear (I think an Option<> would make more sense, I'll update)

@harryalbert harryalbert force-pushed the harry/remote-1458-add-claude-specific-icons-for-cloud-mode-in-vertical-tabs branch from aacac62 to dbaece6 Compare May 1, 2026 15:10
@harryalbert harryalbert merged commit 59fc1a9 into master May 1, 2026
25 checks passed
@harryalbert harryalbert deleted the harry/remote-1458-add-claude-specific-icons-for-cloud-mode-in-vertical-tabs branch May 1, 2026 22:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants